package br.com.sistema.persistencia.dao;

import javax.persistence.EntityManager;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.MatchMode;

import br.com.framework.client.persistencia.GenericDAOImpl;
import br.com.sistema.entidade.Cliente;

public class ClienteDAO extends GenericDAOImpl<Cliente> {

	public ClienteDAO(EntityManager em) {
		super.setEntityManager(em);
	}

	public Integer getIdClienteCadastradoPorNome(String nome) {
		Cliente cliente = new Cliente();
		cliente.setNome(nome);
		Session session = (Session) this.getEntityManager().getDelegate();
		Example example = this.criarExemplo(cliente);
		example.enableLike(MatchMode.EXACT);
		Criteria criteria = session.createCriteria(cliente.getClass()).add(example);
		criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
		cliente = (Cliente) criteria.uniqueResult();
		return cliente == null ? null : cliente.getId();
	}

}
